#include <iostream>
using namespace std;

/*
    作用: 把const修饰的指针，转成非const
*/

int main()
{
    // 例子1:
    // int n1 = 78;
    // const int *p = &n1; // p只能访问n1的值，不能修改

    // 定义一个指针，把p赋值给q
    // int *q = p;                    // 编译错误
    // int *q = const_cast<int *>(p); // 编译通过

    // 例子2: const char *data()
    string str = "hello world";
    // string 转成const char *
    const char *p = str.data();
    // *p = 'H'; // 编译错误
    char *q = const_cast<char *>(p);
    // *q = 'H'; // 编译通过

    return 0;
}